using System;
using System.Collections.Generic;
using ns26;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("HeroPickerButton")]
	public class HeroPickerButton : PegUIElement
	{
		public GameObject m_heroClassIcon => method_3<GameObject>("m_heroClassIcon");

		public UberText m_classLabel => method_3<UberText>("m_classLabel");

		public UberText m_setProgressLabel => method_3<UberText>("m_setProgressLabel");

		public GameObject m_labelGradient => method_3<GameObject>("m_labelGradient");

		public GameObject m_buttonFrame => method_3<GameObject>("m_buttonFrame");

		public TAG_CLASS m_heroClass => method_2<TAG_CLASS>("m_heroClass");

		public List<Material> CLASS_MATERIALS => method_3<Class271<Material>>("CLASS_MATERIALS")?.method_25();

		public HeroPickerButtonBones m_bones => method_3<HeroPickerButtonBones>("m_bones");

		public GameObject m_invalidDeckX => method_3<GameObject>("m_invalidDeckX");

		public FullDef m_fullDef => method_3<FullDef>("m_fullDef");

		public bool m_isSelected => method_2<bool>("m_isSelected");

		public HighlightState m_highlightState => method_3<HighlightState>("m_highlightState");

		public bool m_locked => method_2<bool>("m_locked");

		public long m_preconDeckID => method_2<long>("m_preconDeckID");

		public TAG_PREMIUM m_premium => method_2<TAG_PREMIUM>("m_premium");

		public bool m_isDeckValid => method_2<bool>("m_isDeckValid");

		public static Color BASIC_SET_COLOR_IN_PROGRESS => MonoClass.smethod_6<Color>(TritonHs.MainAssemblyPath, "", "HeroPickerButton", "BASIC_SET_COLOR_IN_PROGRESS");

		public HeroPickerButton(IntPtr address, string className)
			: base(address, className)
		{
		}

		public HeroPickerButton(IntPtr address)
			: this(address, "HeroPickerButton")
		{
		}

		public void SetPreconDeckID(long preconDeckID)
		{
			method_8("SetPreconDeckID", preconDeckID);
		}

		public long GetPreconDeckID()
		{
			return method_11<long>("GetPreconDeckID", Array.Empty<object>());
		}

		public CollectionDeck GetPreconCollectionDeck()
		{
			return method_14<CollectionDeck>("GetPreconCollectionDeck", Array.Empty<object>());
		}

		public bool IsDeckValid()
		{
			return method_11<bool>("IsDeckValid", Array.Empty<object>());
		}

		public void SetIsDeckValid(bool isValid)
		{
			method_8("SetIsDeckValid", isValid);
		}

		public void UpdateDisplay(FullDef def, TAG_PREMIUM premium)
		{
			method_8("UpdateDisplay", def, premium);
		}

		public void SetClassIcon(Material mat)
		{
			method_8("SetClassIcon", mat);
		}

		public void SetClassname(string s)
		{
			method_8("SetClassname", s);
		}

		public void SetFullDef(FullDef def)
		{
			method_8("SetFullDef", def);
		}

		public FullDef GetFullDef()
		{
			return method_14<FullDef>("GetFullDef", Array.Empty<object>());
		}

		public void SetSelected(bool isSelected)
		{
			method_8("SetSelected", isSelected);
		}

		public bool IsSelected()
		{
			return method_11<bool>("IsSelected", Array.Empty<object>());
		}

		public void SetBasicSetProgress(TAG_CLASS classTag)
		{
			method_8("SetBasicSetProgress", classTag);
		}

		public void Lower()
		{
			method_8("Lower");
		}

		public void Raise()
		{
			method_8("Raise");
		}

		public void SetHighlightState(ActorStateType stateType)
		{
			method_8("SetHighlightState", stateType);
		}

		public void Activate(bool enable)
		{
			method_8("Activate", enable);
		}

		public void Lock()
		{
			method_8("Lock");
		}

		public void SetProgress(int acknowledgedProgress, int currProgress, int maxProgress)
		{
			method_9("SetProgress", new Class276.Enum20[3]
			{
				Class276.Enum20.I4,
				Class276.Enum20.I4,
				Class276.Enum20.I4
			}, acknowledgedProgress, currProgress, maxProgress);
		}

		public void SetProgress(int acknowledgedProgress, int currProgress, int maxProgress, bool shouldAnimate)
		{
			method_9("SetProgress", new Class276.Enum20[4]
			{
				Class276.Enum20.I4,
				Class276.Enum20.I4,
				Class276.Enum20.I4,
				Class276.Enum20.Boolean
			}, acknowledgedProgress, currProgress, maxProgress, shouldAnimate);
		}

		public bool IsLocked()
		{
			return method_11<bool>("IsLocked", Array.Empty<object>());
		}

		public TAG_PREMIUM GetPremium()
		{
			return method_11<TAG_PREMIUM>("GetPremium", Array.Empty<object>());
		}

		public void SetPremium(TAG_PREMIUM premium)
		{
			method_8("SetPremium", premium);
		}

		public void Unlock(bool animate)
		{
			method_8("Unlock", animate);
		}

		public void UnlockAfterAnimate()
		{
			method_8("UnlockAfterAnimate");
		}

		public Material GetClassIconMaterial(TAG_CLASS classTag)
		{
			return method_14<Material>("GetClassIconMaterial", new object[1] { classTag });
		}

		public void UpdatePortrait()
		{
			method_8("UpdatePortrait");
		}

		public new void OnRelease()
		{
			method_8("OnRelease");
		}
	}
}
